package com.fram.service.admin;

import java.util.List;

import com.fram.bean.admin.volume.request.VolumePaperRquest;
import com.fram.bean.admin.volume.request.VolumeUpdateRequest;
import com.fram.bean.admin.volume.response.PaperResponse;
import com.fram.bean.admin.volume.response.UserAnswerResponse;
import com.fram.bean.admin.volume.response.VolumeListResponse;
import com.fram.bean.api.volume.response.VolumeResponse;
import com.fram.bean.sys.PageBean;
import com.fram.common.exception.ProException;
import com.fram.entity.VolumeAnswer;
import com.fram.entity.VolumeOption;
import com.fram.entity.VolumePaper;
import com.fram.entity.VolumeQuestion;
import com.github.pagehelper.PageInfo;
/**问卷管理**/
public interface VolumeAddService {

	/** 添加问题 **/
	public void addQuestion(VolumeListResponse request) throws ProException;

	/** 试卷添加问题 (往试卷添加问题 多个问题) **/
	public void addPaper(VolumePaperRquest request) throws ProException;

	/** 一个问题增加多个选择题（abcde） **/
	public void addOption(List<VolumeOption> volumeOption) throws ProException;

	/** 后台 问题卷列表 **/
	public PageInfo<VolumeQuestion> listTopic(PageBean<VolumeQuestion> request) throws ProException;

	/** 后台-问题详情 **/
	public VolumeListResponse details(Long id) throws ProException;

	// 后台-删选择题
	public void deleteOption(Long id) throws ProException;
	
	public void update(VolumeUpdateRequest request) throws ProException;
//	// 后台-修改选择题
//	public void updateOption(VolumeOption request) throws ProException;
//
//	// 后台修改问题
//	public void updateQuestion(VolumeQuestion request) throws ProException;
//	
	/** 加到版本里的 题 查询 分页 并且 含有 版本查询 **/
	public PageInfo<VolumeResponse> listPaper(PageBean<VolumePaper> request) throws ProException;
	
	/**版本下拉 去重**/
	public List<VolumePaper> downPaper()throws ProException;
	
	/**分页展示  根据版本，展示答完题的用户 **/
	public PageInfo<PaperResponse> listByName(PageBean<VolumeAnswer> version)throws ProException;
	/** 根据  用户id 以及版本  查询所有 问题 **/
	public List<UserAnswerResponse> listByUserId(VolumeAnswer request) throws ProException;
	
	/**版本里面的问题进行删除**/
	public void deletePaper(Long id)throws ProException;
}
